判断time 2022-01-14を作成する機能
この機能の責務
速度最優先
開始日時を決定し、タスクリストに加える
自動で決めるのは、開始日時を決める判断に思考リソースを使わせないため
UI案
ダイアログで記録させる
1. 入力ダイアログが開く
(Page Menu|keyboard shortcut)で起動する
2. 入力して確定させる
確定方法
<A-Enter> or 確定ボタン
キャンセル操作
ダイアログの背景クリックは、キャンセル操作にしたほうがいいかな
他のUIの挙動とあわせる
複数項目入力したいときは改行する
開始日時を指定できるoptionもつける?
ダイアログにoptionを指定するDOMを置きたくないな
UIはシンプルにしたい
項目名に入れるのがよさそう
項目のあとに@18:00と書くと、その日の18:00に判断タスクが追加されるとか
確定すると、入力内容を判断するタスクをbackgroundで追加する
開始日時
その時点から1週間後が完了日時になると仮定した場合の開始日時
日時の計算は以前の振り返りページを参照 (あとでリンク貼る)
見積時間はどのくらい?
5分?
時間がなくてもやれるようにしたい
30分?
腰を据えてタスクページをつくる?
これはしないtakker.icon
タスクページを作る必要があるなら、ここではそのタスクページを作るタスクを作る時間に宛てる
判断タスクはそういう時間にしたい
既に作成している判断タスクが近くにあったら、それと統合する
開始日時は、早い方にあわせる
どのくらいを「近い」と判定する?
5分違いは確実に近い
1日違いは絶対遠い
5時間も遠い
10分は近い
1時間?
微妙……
2時間
遠い扱いにしてもいい気がするが……
暫定
開始日時の差が3時間以下の場合を「近い」と定義する
実行していない判断タスクがあったら、その内容もmergeする
実行したかどうかは終了日時の記入有無で判定する
検索範囲
1日前のタスクページまで?
1週間以内?
万全を期すにはこっちだが、時間がかかりそう
項目を入力している間にfetchすればいいのでは?
それなら時間をかけずに入力できるかも
backgroundで書き込むから、fetch終了前にdialogが閉じられても大丈夫
書き込みに失敗したら、local storageに保存しておく
手順
1. まずlocal storageに保存
2. backgroundで書き込みを試みる
3. 書き込みに成功したらlocal storageのデータを消す
3. 失敗したら保存したままにする
次回の項目追加時に書き込む
それとも手動で書き込みを要求する?
それ用のメッセージwindowやボタンを用意するのがめんどい
まだ決まっていないもの
判断タスクで時間内に判断しきれなかった項目があったらどうする?
5分後に実行する判断タスクを作ってそこに移動させる
細かい間隔で作りすぎ?
不必要にタスクがページに書き込まれる?
そんなに時間とれない場合はどうする?
それは5分の判断タスクそのものでもそうか
判断タスクを延長させる?
criticalな項目以外は3時間後にずらす
まあこれが妥当かな
criticalな項目はどうやって判断する?
時間指定で書き込んだ項目とか?
それだと、「すぐ判断する必要がないから遅めにずらした項目」がcritical判定されてしまう
項目入力時にcriticalかどうかのフラグを入れる?
やだなtakker.icon
システムを複雑にしたくない
一旦パス
手動でやることにしよう
開くのに時間がかかる
新しいタブで開いているので、毎回HTMLとJSの初期化処理が走ってしまう
書くのが面倒
カーソルを本文に当てて書き込む
ボタンを押したらすぐ書けるレベルまで操作手順を省きたい
1. 処理したいことの名前を記入する
場所はどこでもいい
projectが違っていてもいい
optionで開始日時を指定できるようにするのもあり
2. 選択範囲に名前を含めてコマンドを実行する
実行方法はPage menuかkeyboard shortcutを使う
現状はキーボードやPage Manuから扱うことを前提としたコマンドのみexportしている
これに加えて、UserScriptから使用する前提の関数を生やす
e.g. backgroundで(今開いている|別の)ページの(ある|複数の)タスクを更新する
Page Menuを含めた最終的な実装はScrapbox上で記述する
あまり一般に適用できる機能ではない
その時その時のtakker.iconにあわせている
その性質上、挙動を頻繁に変更する可能性がある
少し変更してまた動かす、というのを繰り返したい
UIの実装テスト